package com.itheima.socket.tcp.demo08;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo01 {

    public static void main(String[] args) throws Exception {

        // 1. 创建ServerSocket对象
        ServerSocket serverSocket = new ServerSocket(8080) ;

        // 2. 监听客户端
        Socket socket = serverSocket.accept();

        // 3. 获取输入流对象，但是这个输出流对象是一个字节输入流,而我们的客户端一次写了一个字符串，字节输入流没有一次读取一个字符串的方法
        InputStream inputStream = socket.getInputStream();

        // 4. 我们可以使用高效的字符输入流对象数据，一次读取一行的方法 ，因此我们需要将字节输入流转换成高效的字符输入流对象
//        InputStreamReader inputStreamReader = new InputStreamReader(inputStream) ;
//        BufferedReader bufferedReader = new BufferedReader(inputStreamReader) ;

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)) ;

        // 创建一个高效的字符输出流对象
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\a.txt"));

        // 5. 读取数据，一次读取一行
        String line = null ;
        while((line = bufferedReader.readLine()) != null) {

            if(line.equals("886")) {
                break;
            }

            bufferedWriter.write(line);
            bufferedWriter.newLine();
            bufferedWriter.flush();
        }

        socket.close();
        serverSocket.close();

    }

}
